//public class Test{
//    public static void main(String[] args) {
//        int sum=0;
//        for (int i =100; i <999 ; i++) {
//            int j=i%10;
//            int k=i/10%10;
//            int y=i/100%10;
//            sum=j*j*j+k*k*k+y*y*y;
//            if(i == sum){
//                System.out.println(i);
//            }
//        }
//    }
//}




//import java.util.Random;
//import java.util.Scanner;;
//class Test {
//    public static void main(String[] args) {
//        Random random = new Random(); // 默认随机种子是系统时间
//        Scanner sc = new Scanner(System.in);
//        int toGuess = random.nextInt(100);
//        // System.out.println("toGuess: " + toGuess);
//        while (true) {
//            System.out.println("请输入要输入的数字: (1-100)");
//            int num = sc.nextInt();
//            if (num < toGuess) {
//                System.out.println("低了");
//            } else if (num > toGuess) {
//                System.out.println("高了");
//            } else {
//                System.out.println("猜对了");
//                break;
//            }
//        }
//        sc.close();
//    }
//}



//public class Test{
//    public static void main(String[] args) {
//        int[] arr=new int[]{1,2,3};
//        int[] output = transform(arr);
//        printArry(output);
//
//    }
//    public static int[] transform(int[] arr){
//        int[] ret=new int[arr.length];
//        for(int i=0;i<arr.length;i++){
//            ret[i]=arr[i]*2;
//        }
//        return ret;
//    }
//    public static void printArry(int[] arr){
//        for(int i=0;i<arr.length;i++){
//            if(i != arr.length &&  i!=0){
//                System.out.print(",");
//            }
//            System.out.print(arr[i]);
//        }
//    }
//}

//public class Test{
//    public static void main(String[] args) {
//        int[] arr=new int[]{1,2,3,4,5};
//        printArray(arr);
//    }
//    public static void printArray(int[] arr){
//        for(int i=0;i<arr.length;i++){
//            System.out.println(arr[i]);
//        }
//    }
//}


//public class Test{
//    public static void main(String[] args) {
//        int[] arr=new int[100];
//        print(arr);
//    }
//    public static void print(int[] arr){
//        for(int i=0;i<arr.length;i++){
//            arr[i]=i;
//            System.out.print(arr[i]+" ");
//        }
//    }
//}


//import java.util.Arrays;
//public  class Test{
//    public static void main(String[] args) {
//        int[] arr1=new int[]{53,12,45,65,76,89,76};
//        System.out.println("数组为: "+Arrays.toString(arr1));
//        System.out.println("数组是否有序："+judgeSort(arr1));
//
//        int[] arr2=new int[]{1,2,3,4,5,6,7,8,9};
//        System.out.println("数组为: "+Arrays.toString(arr2));
//        System.out.println("数组是否有序: "+judgeSort(arr2));
//    }
//    public static boolean judgeSort(int[] arr){
//        for (int i = 0; i <arr.length-1 ; i++) {
//            if(arr[i]>=arr[i+1]){
//                return false;
//            }
//        }
//        return true;
//    }
//}


//public class Test{
//    public static void main(String[] args) {
//        int[] arr=new int[]{1,2,3,4,5,6,7,8};
//        System.out.println(binarySearch(arr,6));
//    }
//    public static int binarySearch(int[] arr,int toFind){
//        int left=0;
//        int right=arr.length-1;
//        while(left<=right){
//            int mid=(left+right)/2;
//            if(toFind<arr[mid]){
//                right=mid-1;
//            }else if(toFind>arr[mid]){
//                left=mid+1;
//            } else{
//                return mid;
//            }
//        }
//        return -1;
//    }
//}


//import java.util.Arrays;
//public class Test{
//    public static void main(String[] args) {
//        int[] arr=new int[]{11,21,32,43,23,46,76,87};
//        System.out.println("数组1为: "+Arrays.toString(arr));
//        System.out.println("拷贝后，数组2为："+Arrays.toString(copyOf(arr)));
//    }
//    public static int[] copyOf(int[] arr){
//        int[] brr=new int[arr.length];
//        for (int i = 0; i <brr.length ; i++) {
//            brr[i]=arr[i];
//        }
//        return brr;
//    }
//}


//public class Test {
//    public static void main(String[] args) {
//        int[] arr = new int[]{1, 2, 3};
//        System.out.println(toString(arr));
//    }
//
//    public static String toString(int[] arr) {
//        String ret = "[";
//        for (int i = 0; i < arr.length; i++) {
//            ret += arr[i];
//            if (i  != arr.length - 1) {
//                ret += ",";
//            }
//        }
//        ret += "]";
//        return ret;
//    }
//}

//public class Test{
//    public static void main(String[] args) {
//        int[] arr1=new int[]{2,6,4,1};
//        int[] arr2=new int[]{1,2,34,3,4,5,7,23,12};
//        System.out.println(threeConsecutiveOdds(arr1));
//        System.out.println(threeConsecutiveOdds(arr2));
//    }
//    public static boolean threeConsecutiveOdds(int[] arr){
//        if(arr.length <=2){
//            return false;
//        }
//        int i=0;
//        int count=0;
//        while(i<arr.length){
//            if((arr[i]&1) ==1 ){
//                count++;
//                if(count == 3){
//                    return true;
//                }
//            }else{
//                count=0;
//            }
//            i++;
//        }
//        return false;
//    }
//}


//import java.util.Arrays;
//public class Test{
//    public static void main(String[] args) {
//        int[] arr=new int[]{3,2,3};
//        System.out.println(majorityElment(arr));
//
//    }
//    public static int majorityElment(int[] arr){
//        Arrays.sort(arr);
//        return arr[arr.length >> 1];
//    }
//}



//import java.util.Arrays;
//public class Test{
//    public static void main(String[] args) {
//        int[] arr=new int[]{3,4,6,9,2};
//        bubbleSort(arr);
//        System.out.println(Arrays.toString(arr));
//    }
//    public static void bubbleSort(int[] arr){
//        for (int i = 0; i <arr.length-1; i++) {
//            for (int j = 0; j <arr.length-1-i ; j++) {
//                if(arr[j] > arr[j+1]){
//                    int tmp=arr[j];
//                    arr[j]=arr[j+1];
//                    arr[j+1]=tmp;
//                }
//            }
//        }
//    }
//}


//public class Test{
//    public static void main(String[] args) {
//        int[] arr=new int[]{4,1,2,1,2};
//        int ret=singleNumber(arr);
//        System.out.println(ret);
//    }
//    public static int singleNumber(int[] arr){
//        for (int i = 1; i <arr.length ; i++) {
//            arr[0]=arr[0]^arr[i];
//        }
//        return arr[0];
//    }
//}


//public class Test{
//    public static void main(String[] args) {
//        int[] arr=new int[]{2,7,11,15};
//        int target=9;
//        int[] ouput=twoSum(arr,target);
//        System.out.println(ouput);
//    }
//    public static int[] twoSum(int[] arr,int target){
//        for (int i = 0; i <arr.length ; i++) {
//            for (int j = i+1; j <arr.length ; j++) {
//                if(arr[i]+arr[j] == target){
//                   return new int[]{i,j};
//                }
//            }
//        }
//        return null;
//    }
//}



//public class Test{
//    public static void main(String[] args) {
//        int[] arr = {1,2,3,4,5,6};
//        System.out.println(max(arr));
//    }
//    public static int max(int[] arr) {
//        int max = arr[0];
//        for (int i = 1; i < arr.length; i++) {
//            if (arr[i] > max) {
//                max = arr[i];
//            }
//        }
//        return max;
//    }
//}


//public class Test{
//    public static void main(String[] args) {
//        int[] arr = {1,2,3,4,5,6};
//        System.out.println(avg(arr));
//    }
//    public static double avg(int[] arr) {
//        int sum = 0;
//        for (int x : arr) {
//            sum += x;
//        }
//        return (double)sum / (double)arr.length;
//    }
//}


//public class Test{
//    public static void main(String[] args) {
//        int[] arr = {1,2,3,10,5,6};
//        System.out.println(find(arr, 10));
//    }
//    public static int find(int[] arr, int toFind) {
//        for (int i = 0; i < arr.length; i++) {
//            if (arr[i] == toFind) {
//                return i;
//            }
//        }
//        return -1; // 表示没有找到
//    }
//}


//public class Test{
//    public static void main(String[] args) {
//        int[] arr = {1,2,3,4,5,6};
//        System.out.println(binarySearch(arr, 6));
//    }
//    public static int binarySearch(int[] arr, int toFind){
//        int left = 0;
//        int right = arr.length - 1;
//        while (left <= right) {
//            int mid = (left + right) / 2;
//            if (toFind < arr[mid]) {
//                // 去左侧区间找
//                right = mid - 1;
//            }
//            else if (toFind > arr[mid]) {
//                // 去右侧区间找
//                left = mid + 1;
//            } else {
//                // 相等, 说明找到了
//                return mid;
//            }
//        }// 循环结束, 说明没找到
//        return -1;
//    }
//}


//public class Test{
//        static int count = 0; // 创建一个成员变量, 记录二分查找循环次数
//        public static void main(String[] args) {
//            int[] arr = makeBigArray();
//            int ret = binarySearch(arr, 9999);
//            System.out.println("ret = " + ret + " count = " + count);
//        }
//
//        public static int[] makeBigArray() {
//            int[] arr = new int[10000];
//            for (int i = 0; i < 10000; i++) {
//                arr[i] = i;
//            }
//            return arr;
//        }
//
//        public static int binarySearch(int[] arr, int toFind) {
//            int left = 0;
//            int right = arr.length - 1;
//            while (left <= right) {
//                count++; // 使用一个变量记录循环执行次数
//                int mid = (left + right) / 2;
//                if (toFind < arr[mid]) {
//                    // 去左侧区间找
//                    right = mid - 1;
//                }
//                else if (toFind > arr[mid]) {
//                    // 去右侧区间找
//                    left = mid + 1;
//                }
//                else {
//                    // 相等, 说明找到了
//                    return mid;
//                }
//            }
//            // 循环结束, 说明没找到
//            return -1;
//        }
//    }
//    // 执行结果 ret = 9999 count = 14


//public class Test{
//    public static void main(String[] args) {
//        int[] arr = {1,2,3,10,5,6}; System.out.println(isSorted(arr));
//    }
//    public static boolean isSorted(int[] arr) {
//        for (int i = 0; i < arr.length - 1; i++) {
//            if (arr[i] > arr[i + 1]) {
//                return false;
//            }
//        }
//        return true;
//    }
//}

//import java.util.Arrays;
//public class Test{
//    public static void main(String[] args) {
//        int[] arr=new int[]{3,4,6,9,2};
//        bubbleSort(arr);
//        System.out.println(Arrays.toString(arr));
//    }
//    public static void bubbleSort(int[] arr){
//        for (int i = 0; i <arr.length-1; i++) {
//            for (int j = 0; j <arr.length-1-i ; j++) {
//                if(arr[j] > arr[j+1]){
//                    int tmp=arr[j];
//                    arr[j]=arr[j+1];
//                    arr[j+1]=tmp;
//                }
//            }
//        }
//    }
//}


//import java.util.Arrays;
//public class Test{
//    public static void main(String[] args) {
//        int[] arr = {1, 2, 3, 4};
//        reverse(arr);
//        System.out.println(Arrays.toString(arr));
//    }
//    public static void reverse(int[] arr) {
//        int left = 0;
//        int right = arr.length - 1;
//        while (left < right) {
//            int tmp = arr[left];
//            arr[left] = arr[right];
//            arr[right] = tmp;
//            left++;
//            right--;
//        }
//    }
//}



//import java.util.Arrays;
//public class Test{
//    public static void main(String[] args) {
//        int[] arr = {1, 2, 3, 4, 5, 6};
//        transform(arr);
//        System.out.println(Arrays.toString(arr));
//    }
//    public static void transform(int[] arr) {
//        int left = 0;
//        int right = arr.length - 1;
//        while (left < right) {
//            // 该循环结束, left 就指向了一个奇数
//            while (left < right && arr[left] % 2 == 0) {
//                left++;
//            }
//            // 该循环结束, right 就指向了一个偶数
//            while (left < right && arr[right] % 2 != 0) {
//                right--;
//            }
//            // 交换两个位置的元素
//            int tmp = arr[left];
//            arr[left] = arr[right];
//            arr[right] = tmp;
//        }
//    }
//}

//public class Test{
//    public static void main(String[] args) {
//        int num = 0;
//        func(num);
//        System.out.println("num = " + num);
//    }
//
//    public static void func(int x) {
//        x = 10;
//        System.out.println("x = " + x);
//    }
//}



//class Person {
//    public int age;//成员属性 实例变量
//    public String name;
//    public String sex;
//    public void eat() {//成员方法
//        System.out.println("吃饭!");
//    }
//    public void sleep() {
//        System.out.println("睡觉!");
//    }
//}
//public class Test{
//    public static void main(String[] args) {
//        Person person = new Person();//通过new实例化对象
//        person.eat();//成员方法调用需要通过对象的引用调用
//        person.sleep();
//        //产生对象     实例化对象
//        Person person2 = new Person();
//        Person person3 = new Person();
//    }
//}


//class Person {
//    public String name;   // 字段
//    public int age; }
//class Test {
//    public static void main(String[] args) {
//        Person person = new Person();
//        System.out.println(person.name);
//        System.out.println(person.age);
//    }
//}


//class Person {
//    public String name = "张三";
//    public int age = 18;
//}
//class Test {
//    public static void main(String[] args) {
//        Person person = new Person();
//        System.out.println(person.name);
//        System.out.println(person.age);
//    }
//}


//class Person {
//    public int age = 18;
//    public String name = "张三";
//
//    public void show() {
//        System.out.println("我叫" + name + ", 今年" + age + "岁");
//    }
//}
//class Test {
//    public static void main(String[] args) {
//        Person person = new Person();
//        person.show();
//    }
//}


//class TestDemo{
//    public int a;
//    public static int count; }
//public class Test{
//
//    public static void main(String[] args) {
//        TestDemo t1 = new TestDemo();
//        t1.a++;
//        TestDemo.count++;
//        System.out.println(t1.a);
//        System.out.println(TestDemo.count);
//        System.out.println("============");
//        TestDemo t2 = new TestDemo();
//        t2.a++;
//        TestDemo.count++;
//        System.out.println(t2.a);
//        System.out.println(TestDemo.count);
//    }
//}


//class TestDemo{
//    public int a;
//    public static int count;
//
//    public static void change() {
//        count = 100;
//        //a = 10; error 不可以访问非静态数据成员
//    }
//}
//public class Test{
//    public static void main(String[] args) {
//        TestDemo.change();//无需创建实例对象 就可以调用
//        System.out.println(TestDemo.count);
//    }
//}

//class Person {
//    public int age;//实例变量   存放在对象内
//    public String name;//实例变量
//    public String sex;//实例变量
//    public static int count;//类变量也叫静态变量，编译时已经产生，属于类本身，且只有一份。存放在方法区
//    public final int SIZE = 10;//被final修饰的叫常量，也属于对象。 被final修饰，后续不可更改
//    public static final int  COUNT = 99;//静态的常量，属于类本身，只有一份 被final修饰，后续不可更改
//    //实例成员函数
//    public void eat() {
//        int a = 10;//局部变量
//        System.out.println("eat()!");
//    }
//    //实例成员函数
//    public void sleep() {
//        System.out.println("sleep()!");
//    }
//    //静态成员函数
//    public static void staticTest(){
//        //不能访问非静态成员
//        //sex = "man"; error
//        System.out.println("StaticTest()");
//    }
//}
//public class Test{
//    public static void main(String[] args) {
//        //产生对象 实例化对象
//        Person person = new Person();//person为对象的引用
//        System.out.println(person.age);//默认值为0
//        System.out.println(person.name);//默认值为null
//        //System.out.println(person.count);//会有警告!
//        //正确访问方式：
//        System.out.println(Person.count);
//        System.out.println(Person.COUNT);
//        Person.staticTest();
//        //总结：所有被static所修饰的方法或者属性，全部不依赖于对象。
//        person.eat();
//        person.sleep();
//    }
//}



//class Person {
//    public String name = "张三";
//    public int age = 18; }
//class Test {
//    public static void main(String[] args) {
//        Person person = new Person();
//        System.out.println("我叫" + person.name + ", 今年" + person.age + "岁");
//    }
//}


//class Person {
//    private String name;//实例成员变量
//    private int age;
//
//    public void setName(String name){
//        //name = name;//不能这样写
//        this.name = name;//this引用，表示调用该方法的对象
//    }
//    public String getName(){
//        return name;
//    }
//
//    public void show(){
//        System.out.println("name: "+name+" age: "+age);
//    }
//
//    public static void main(String[] args) {
//        Person person = new Person();
//        person.setName("caocao");
//        String name = person.getName();
//        System.out.println(name);
//        person.show();
//    }
//}


//class Person{
//    private String name;//实例成员变量
//    private int age;
//    private String sex;
//
//    //默认构造函数 构造对象
//    public Person() {
//        this.name = "caocao";
//        this.age = 10;
//        this.sex = "男";
//    }
//
//    //带有3个参数的构造函数
//    public Person(String name,int age,String sex) {
//        this.name = name;
//        this.age = age;
//        this.sex = sex;
//    }
//    public void show(){
//        System.out.println("name: "+name+" age: "+age+" sex: "+sex);
//    }
//
//}
//public class Test{
//    public static void main(String[] args) {
//        Person p1 = new Person();//调用不带参数的构造函数 如果程序没有提供会调用不带参数的构造函数
//        p1.show();
//        Person p2 = new Person("zhangfei",80,"男");//调用带有3个参数的构造函数
//        p2.show();
//    }
//}



//class Person{
//    private String name;//实例成员变量
//    private int age;
//    private String sex;
//
//    public Person() {
//        System.out.println("I am Person init()!");
//    }
//
//    //实例代码块
//    {
//        this.name = "bit";
//        this.age = 12;
//        this.sex = "man";
//        System.out.println("I am instance init()!");
//    }
//
//    public void show(){
//        System.out.println("name: "+name+" age: "+age+" sex: "+sex);
//    }
//
//}
//public class Test {
//    public static void main(String[] args) {
//        Person p1 = new Person();
//        p1.show();
//    }
//}


//import java.util.Arrays;
//public class Test{
//    public static void swap(int[] arr1,int[] arr2) {
//        int tmp=0;
//        for (int i = 0; i <arr1.length ; i++) {
//            tmp=arr1[i];
//            arr1[i]=arr2[i];
//            arr2[i]=tmp;
//        }
//    }
//    public static void main(String[] args) {
//        int[] arr1=new int[]{1,3,5,9};
//        int[] arr2=new int[]{2,4,6,3};
//        System.out.println("交换前arr1："+Arrays.toString(arr1));
//        System.out.println("交换前arr2："+Arrays.toString(arr2));
//        System.out.println("============================");
//        swap(arr1,arr2);
//        System.out.println("交换后arr1："+Arrays.toString(arr1));
//        System.out.println("交换后arr2："+Arrays.toString(arr2));
//    }
//}



//import java.util.Arrays;
//public class Test{
//    public static void main(String[] args) {
//        int[] arr=new int[]{1,2,3,4,5,6,7,8};
//        int left=0;
//        int right=arr.length-1;
//        while(left<right){
//            while(left<right && arr[left]%2==0){
//                left++;
//            }
//            while(left<right && arr[right]%2 !=0){
//                right--;
//            }
//            int tmp=arr[left];
//            arr[left]=arr[right];
//            arr[right]=tmp;
//        }
//        System.out.println("newarr:"+Arrays.toString(arr));
//    }
//}

//class Person {
//    private String name;
//    private int age;
//
//    public Person(String name,int age) {
//        this.age = age;
//        this.name = name;
//    }
//
//    public void show() {
//
//        System.out.println("name:"+name+" " + "age:"+age);
//    }
//}
//public class Test{
//    public static void main(String[] args) {
//        Person person = new Person("caocao",19);
//        person.show();
//        //我们发现这里打印的是一个地址的哈希值 原因：调用的是Object的toString方法
//        System.out.println(person);
//    }
//}




//class Person {
//    private String name;
//    private int age;
//    public Person(String name,int age) {
//        this.age = age;
//        this.name = name;
//    }
//    public void show() {
//        System.out.println("name:"+name+" " + "age:"+age);
//    }
//
//    //重写Object的toString方法
//    @Override
//    public String toString() {
//        return "Person{" +
//                "name='" + name + '\'' +
//                ", age=" + age +
//                '}';
//    }
//}
//public class Test{
//    public static void main(String[] args) {
//        Person person = new Person("caocao",34);
//        person.show();
//        System.out.println(person);
//    }
//}


//class Person {
//    private String name;
//    private int age;
//
//    public Person(String name,int age) {
//        this.age = age;
//        this.name = name;
//    }
//    public void show() {
//        System.out.println("name:"+name+" " + "age:"+age);
//    }
//}
//public class Test {
//    public static void main(String[] args) {
//        new Person("caocao",19).show();//通过匿名对象调用方法
//    }
//}


//class Person {
//    private String name;
//    private int age;
//    private String sex;
//
//    //无参构造
//    public Person() {
//        System.out.println("hehe");
//    }
//
//    public Person(String name,int age) {
//        // 调用无参构造
//        this();
//        this.name = name;
//        this.age = age;
//    }
//    public Person(String name,int age,String sex) {
//        // 调用两个参数的有参构造
//        this(name,age);
//        this.sex = sex;
//    }
//
//    public void fun() {
//        System.out.println(this);
//    }
//}
//public class Test{
//    public static void main(String[] args) {
//        Person person1 = new Person();
//        System.out.println(person1);
//        person1.fun();
//        System.out.println("------------------");
//        Person person2 = new Person();
//        System.out.println(person2);
//        person2.fun();
//    }
//}



//class Test {
//    public static void main(String[] args) {
//        int[] arr = {1, 2, 3};
//        transform(arr);
//        printArray(arr);
//    }
//    public static void printArray(int[] arr) {
//        for (int i = 0; i < arr.length; i++) {
//            System.out.println(arr[i]);
//        }
//    }
//    public static void transform(int[] arr) {
//        for (int i = 0; i < arr.length; i++) {
//            arr[i] = arr[i] * 2;
//        }
//    }
//}


//public class Test {
//    public static void main(String[] args) {
//        int[] arr1 = new int[]{2, 6, 4, 1};
//        int[] arr2 = new int[]{1, 2, 34, 3, 4, 5, 7, 23, 12};
//        System.out.println( consecutiveOdds(arr1));
//        System.out.println( consecutiveOdds(arr2));
//    }
//
//    public static boolean consecutiveOdds(int[] num) {
//        // for-each 遍历数组(不修改原数组)
//        // 记录当前数组中出现连续奇数的个数
//        int count = 0;
//        for (int i : num) {
//            // 此时i是个奇数
//            if (i % 2 != 0) {
//                count++;
//            } else {
//                // 此时i是偶数,重置count变量
//                count = 0;
//            }
//            if (count == 3) {
//                return true;
//            }
//        }
//        return false;
//
//    }
//}

//import java.util.Arrays;
//public class Test {
//    public static void main(String[] args) {
//    int[] arr1=new int[]{3,2,3};
//    int[] arr2=new int[]{2,2,1,1,1,2,2};
//        System.out.println(manyNum(arr1));
//        System.out.println(manyNum(arr2));
//    }
//
//    public static int manyNum(int[] num) {
//        // JDK内置了排序方法
//        Arrays.sort(num);
//        return num[num.length / 2];
//    }
//}


//import java.util.HashMap;
//import java.util.Map;
//import java.util.Set;
//public class Test{
//    public static void main(String[] args) {
//        int[] arr1=new int[]{3,2,3};
//       int[] arr2=new int[]{2,2,1,1,1,2,2};
//        System.out.println(manyNum(arr1));
//        System.out.println(manyNum(arr2));
//    }
//
//    //哈希表方法 映射存储出现元素以及该元素出现的次数
//    public static int manyNum(int[] num) {
//        // JDK的哈希表用法
//        HashMap<Integer,Integer> hashMap = new HashMap<>();
//        // 遍历数组的过程中将不重复的元素以及其出现的次数存储到映射中
//        for (int i = 0; i < num.length; i++) {
//            // 若此时映射中存在元素
//            if (hashMap.containsKey(num[i])) {
//                // 此时只需要将出现次数+1
//                int value = hashMap.get(num[i]);
//                hashMap.put(num[i],value + 1);
//            }
//            else {
//                // 此时映射中还没有该元素
//                // 哈希表的存储方法put(不重复的元素，value)
//                hashMap.put(num[i],1);
//            }
//        }
//        // 在数据集中查找出现次数 > n/2的元素
//        // 哈希表的遍历
//        Set<Map.Entry<Integer,Integer>> set = hashMap.entrySet();
//        for (Map.Entry<Integer,Integer> entry : set) {
//            // 取出每个元素的value值(出现的次数)
//            if (entry.getValue() > num.length / 2) {
//                return entry.getKey();
//            }
//        }
//        return -1;
//    }
//
//}
//


//public class Test{
//    public static void main(String[] args) {
//        int[] arr1=new int[]{2,2,1};
//        int[] arr2=new int[]{4,1,2,1,2};
//        System.out.println(singleNum(arr1));
//        System.out.println(singleNum(arr2));
//    }
//    public static int singleNum(int[] num) {
//        // 将所有数组元素进行一次异或+
//        // 结果一定是出现一次的元素
//        int ret = 0;
//        for (int i :num) {
//            ret = ret ^ i;
//        }
//        return ret;
//    }
//}


//import java.util.Arrays;
//public class Test{
//    public static void main(String[] args) {
//        Test test=new Test();
//        int[] arr=new int[]{2,7,11,15};
//        int target=9;
//        System.out.println(Arrays.toString(Test.twoSum(arr,9)));
//    }
//    public static int[] twoSum(int[] num, int target) {
//        int[] ret = new int[2];
//        // 双引用法
//        // 从头给后遍历集合,边遍历边从后给前找是否有num[j] = target - num[i]
//        for (int i = 0; i < num.length; i++) {
//            for (int j = num.length - 1; j > i; j--) {
//                if (num[i] + num[j] == target) {
//                    ret[0] = i;
//                    ret[1] = j;
//                }
//            }
//        }
//        return ret;
//    }
//}



//import java.util.HashMap;
//import java.util.Map;
//import java.util.Set;
//public class Test{
//    public static void main(String[] args) {
//        int[] arr1=new int[]{2,2,1};
//        int[] arr2=new int[]{4,1,2,1,2};
//         System.out.println(singleNum(arr1));
//        System.out.println(singleNum(arr2));
//    }
//    public static int singleNum(int[] num) {
//        Map<Integer,Integer> map = new HashMap<>();
//        for (int i = 0; i < num.length; i++) {
//            // 判断一下数组元素在映射中是否存在
//            if (map.containsKey(num[i])) {
//                map.put(num[i],2);
//            }else {
//                map.put(num[i],1);
//            }
//        }
//        // 遍历该映射，找到出现次数等1的元素key
//        Set<Map.Entry<Integer,Integer>> set = map.entrySet();
//        for (Map.Entry<Integer,Integer> entry : set) {
//            if (entry.getValue() == 1) {
//                return entry.getKey();
//            }
//        }
//        return -1;
//    }
//}



//import java.util.Arrays;
//public class Test{
//    public static void main(String[] args) {
//       int[] arr=new int[]{3,4,5,6,7,8};
//       bubbleSort(arr);
//        System.out.println(Arrays.toString(arr));
//    }
//    public static void bubbleSort(int[] num) {
//        // 未排序的数组 [0.....num.length-1]
//        // 已排序的数组 []
//        // 需要比较多少趟
//        // 每当一趟走完(两两交换元素，把大元素扔到后面),最大的元素一定出现在最后位置
//        // 当最后一趟只有一个元素时，此时整个数组已经有序了，不再需要交换
//        for (int i = 0; i < num.length - 1; i++) {
//            // 两两元素做交换处理
//            // 真正需要比较的元素个数
//            // 优化(若内层循环没有交换元素，说明此时数组已经有序了！！)
//            boolean swapFlag = true;
//            for (int j = 0; j < num.length - i - 1; j++) {
//                if (num[j] > num[j + 1]) {
//                    // swap
//                    int tmp = num[j];
//                    num[j] = num[j + 1];
//                    num[j + 1] = tmp;
//                    swapFlag = false;
//                }
//            }
//            if (swapFlag) {
//                System.out.println("若此时没有元素做交换，此时数组已经有序");
//                break;
//            }
//        }
//    }
//
//}


//public class Test{
//    public static void main(String[] args) {
//        int[] arr=new int[]{1,2,3,4,5,6,7,8};
//        System.out.println(binarySearch(arr,6));
//    }
//
//    public static int binarySearch(int[] num, int toFind) {
//        return binarySearchInternal(num,toFind,0,num.length - 1);
//    }
//    // 递归
//    public static int binarySearchInternal(int[] num, int toFind, int left, int right) {
//        // 此时num为空区间
//        if (left > right) {
//            return -1;
//        }
//        int mid = (left + right) >> 1;
//        if (num[mid] == toFind) return mid;
//        else if (toFind < num[mid]) {
//            // 在←半区间查找
//            return binarySearchInternal(num,toFind,left,mid - 1);
//        }else {
//            // 在右半区间找
//            return binarySearchInternal(num,toFind,mid + 1,right);
//        }
//    }
//}




//public class Test{
//    static int cnt = 6;
//    static{
//        cnt += 9;
//    }
//    public static void main(String[] args){
//        System.out.println("cnt=" + cnt);
//    }
//    static{
//        cnt /=3;
//    };
//}

class Person{
    private int age;
    private String name;

    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }
}